package com.yuzhitong.shapi.contract;

import com.yuzhitong.shapi.base.BaseView;
import com.yuzhitong.shapi.base.net.BaseListBean;
import com.yuzhitong.shapi.bean.MovieBean;

import java.util.List;
import java.util.Map;

import io.reactivex.rxjava3.core.Observable;

/**
 * Created by Brsya
 * CreateDate: 2022/5/8  15:39
 * Description:
 * 影视列表页
 */
public interface MovieListContract {
    interface Model {
        /**
         * 获取热门 排序第一个
         */
        Observable<BaseListBean<MovieBean>> getHot(Map<String, Object> par);

        /**
         * 获取今日推荐
         */
        Observable<BaseListBean<MovieBean>> getDayHot(Map<String, Object> par);
    }

    interface View extends BaseView {
        /**
         * 显示热门
         */
        void showHot(List<MovieBean> categoryBeans);

        /**
         * 显示今日推荐
         */
        void showDayHot(List<MovieBean> categoryBeans);
        /**
         * 列表没有更多数据
         */
        void showNoMore();
    }

    interface Presenter {
        /**
         * 获取热门 排序第一个
         *
         * @param sort code为sort 的第一个数据的code
         */
        void getHot(String type, String sort);

        /**
         * 获取今日推荐
         *
         * @param type 数据的 code
         */
        void getDayHot(int pageNumber, String type);
    }


}
